From 1a1cc016c8f6ff83ea057ee6fe6838b89c382210 Mon Sep 17 00:00:00 2001
From: Georg Koppen <gk@torproject.org>
Date: Sun, 24 Jun 2018 19:36:35 +0000
Subject: [PATCH 1/2] Revert "Bug 1464084 - Don't export
 std::thread::_M_start_thread symbols with --enable-stdcxx-compat. r=froydnj,
 a=RyanVM"

This reverts commit 655e5f1d95e0d5ecd037f36dbe533372130e5621.

diff --git a/build/unix/stdc++compat/hide_std.ld b/build/unix/stdc++compat/hide_std.ld
deleted file mode 100644
index 4b3400b0f327..000000000000
--- a/build/unix/stdc++compat/hide_std.ld
+++ /dev/null
@@ -1,5 +0,0 @@
-hidden {
-  local:
-    # std::thread::_M_start_thread(...)
-    _ZNSt6thread15_M_start_thread*;
-};
diff --git a/build/unix/stdc++compat/moz.build b/build/unix/stdc++compat/moz.build
index 4444d0c4f297..20517a1caef5 100644
--- a/build/unix/stdc++compat/moz.build
+++ b/build/unix/stdc++compat/moz.build
@@ -23,5 +23,3 @@ COMPILE_FLAGS['CLANG_PLUGIN'] = []
 
 DEFINES['MOZ_LIBSTDCXX_VERSION'] = CONFIG['MOZ_LIBSTDCXX_TARGET_VERSION']
 HOST_DEFINES['MOZ_LIBSTDCXX_VERSION'] = CONFIG['MOZ_LIBSTDCXX_HOST_VERSION']
-
-OS_LIBS += ['-Wl,--version-script,%s/hide_std.ld' % SRCDIR]
diff --git a/python/mozbuild/mozbuild/action/generate_symbols_file.py b/python/mozbuild/mozbuild/action/generate_symbols_file.py
index bf1ae917a2d0..f118060f47cf 100644
--- a/python/mozbuild/mozbuild/action/generate_symbols_file.py
+++ b/python/mozbuild/mozbuild/action/generate_symbols_file.py
@@ -42,8 +42,6 @@ def generate_symbols_file(output, *args):
 
     symbols = [s.strip() for s in pp.out.getvalue().splitlines() if s.strip()]
 
-    libname, ext = os.path.splitext(os.path.basename(output.name))
-
     if buildconfig.substs['OS_TARGET'] == 'WINNT':
         # A def file is generated for MSVC link.exe that looks like the
         # following:
@@ -68,13 +66,14 @@ def generate_symbols_file(output, *args):
         # those platforms, and to DATA on Windows, so that the "DATA" part
         # is, in fact, part of the symbol name as far as the symbols variable
         # is concerned.
+        libname, ext = os.path.splitext(os.path.basename(output.name))
         assert ext == '.def'
         output.write('LIBRARY %s\nEXPORTS\n  %s\n'
                      % (libname, '\n  '.join(symbols)))
     elif buildconfig.substs['GCC_USE_GNU_LD']:
         # A linker version script is generated for GNU LD that looks like the
         # following:
-        # liblibrary.so {
+        # {
         # global:
         #   symbol1;
         #   symbol2;
@@ -82,8 +81,8 @@ def generate_symbols_file(output, *args):
         # local:
         #   *;
         # };
-        output.write('%s {\nglobal:\n  %s;\nlocal:\n  *;\n};'
-                     % (libname, ';\n  '.join(symbols)))
+        output.write('{\nglobal:\n  %s;\nlocal:\n  *;\n};'
+                     % ';\n  '.join(symbols))
     elif buildconfig.substs['OS_TARGET'] == 'Darwin':
         # A list of symbols is generated for Apple ld that simply lists all
         # symbols, with an underscore prefix.
-- 
2.17.1

